﻿namespace Brjnk.Maps
{
    using System;

    /// <summary>
    /// Časovač schopný vyvolat v zadaných časech událost. Metody tohoto rozhraní mohou být volány z více vláken.
    /// Slouží jako wrapper pro System.Threading.Timer
    /// </summary>
    public interface ITimer
    {
        event Action Elapsed;

        /// <summary>
        /// Nastaví časovač. Časy jsou v milisekudnách. Předání záporné hodnoty jej deaktivuje.
        /// </summary>
        /// <param name="dueTime">První interval</param>
        /// <param name="period">Nasledující opakující se interval</param>
        void Change(long dueTime, long period);
    }
}